package snapex.expense.service;

import java.util.List;

import snapex.core.model.Expense;
import snapex.core.model.ExpenseDetail;
import snapex.core.model.Result;
import snapex.core.model.SearchParams;


public interface IExpenseService {

	public Result<Expense> getExpense(String expenseId, boolean isBasic);
	
	public Result<List<Expense>> getExpenses(SearchParams condition);
	
	public Result<List<Expense>> exportExpenses(SearchParams condition);
	
	public Result createExpense(Expense expense);
	
	public Result submitExpense(String expenseId);

	public Result deleteExpense(String expenseId);
	
	public Result updateExpense(Expense expense);

	public Result<List<ExpenseDetail>> getExpensePurposes(String expenseId);
	
	public Result<ExpenseDetail> getExpensePurpose(String expensePurposeId);
	
	public Result createExpensePurpose(ExpenseDetail expensePurpose);
	
	public Result deleteExpensePurpose(String expensePurposeId);
}
